package br.com.gc.rfqx.model.entity;

import java.io.Serializable;

import javax.persistence.Embeddable;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;

@Embeddable
public class Address implements Serializable {
	
	private static final long serialVersionUID = 1L;

	private String address;
	private String city;
	private String country;
	private String province;
	private String state;

	@Enumerated(EnumType.STRING)
	private AddressType addressType;

	private String zipCode;

	public Address() {
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public String getCity() {
		return city;
	}

	public void setCity(String city) {
		this.city = city;
	}

	public String getCountry() {
		return country;
	}

	public void setCountry(String country) {
		this.country = country;
	}

	public String getProvince() {
		return province;
	}

	public void setProvince(String province) {
		this.province = province;
	}

	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}

	public AddressType getAddressType() {
		return addressType;
	}

	public void setAddressType(AddressType addressType) {
		this.addressType = addressType;
	}

	public String getZipCode() {
		return zipCode;
	}

	public void setZipCode(String zipCode) {
		this.zipCode = zipCode;
	}

	public Address withAddress(String address) {
		this.address = address;
		return this;
	}

	public Address withCity(String city) {
		this.city = city;
		return this;
	}

	public Address withCountry(String country) {
		this.country = country;
		return this;
	}

	public Address withProvince(String province) {
		this.province = province;
		return this;
	}

	public Address withZipCode(String zipCode) {
		this.zipCode = zipCode;
		return this;
	}

	public Address withState(String state) {
		this.state = state;
		return this;
	}

	public Address withAddressType(AddressType addressType) {
		this.addressType = addressType;
		return this;
	}

}